

#ifndef CAMERA_H
#define CAMERA_H

class starVector3;
class starMatrix4;

class Camera
{
public:
	Camera();
	Camera( float fovy, float aspectRatio, float nearPlane, float farPlane);
	~Camera();

	void		SetMoveSpeed(float speed);
	void		SetRotateSpeed(float speed);

	void		Move(starVector3 offset);
	void		Rotate(starVector3 offset);

	starMatrix4	GetViewMatrix() { return mViewMatrix;}

private:

	float		mFovy; 
	float		mAspectRatio; 
	float		mNearPlane; 
	float		mFarPlane;

	starVector3 mPos;
	starVector3 mAngle;

	float		mMoveSpeed;		//each second
	float		mRotateSpeed;	//each second

	starMatrix4	mPerspectiveProjectMatrix;
	starMatrix4	mViewMatrix;


};

#endif